package cn.stacey.day03;

/**
 * 方法重载:多个方法做类似的事情，但是有细微的差别
 * 
 * 1. 方法名字一样
 * 2. 方法参数不一样
 * 		2.1 类型不一样
 *      2.2 数量不一样
 *      
 *      方法重载，和返回类型没有关系
 *      
 *      // 方法覆盖的区别
 * 
 * @author hchaojie
 *
 */
public class DemoMethodOverloading {
	public static void main(String[] args) {
		System.out.println(sum());
		System.out.println(sum(1));
		System.out.println(sum(1, 2));
		
		int[] array = {1, 2};			// 实际参数
		System.out.println(sum(array));	
		System.out.println(sum(1, 2, 5, 8, 10));
		System.out.println(sum(1.0, 2.0, 5.0));
	}
	
	public static int max(int a, int b) {
		return a > b ? a : b;
	}
	
	public static int max(int a, int b, int c) {
		int max = a > b ? a : b;
		max = max > c ? max : c;
		return max;
	}
	
	public static double max(double a, double b) {
		return a > b ? a : b;
	}
	
//	public static int sum(int a, int b) {
//		return a + b;
//	}
//	
//	public static int sum(int a, int b, int c) {
//		return a + b + c;
//	}
	
	// 可变参数
	// 参数是个数组
	// a是形式参数
	
	public static int sum(int... a) {
		int sum = 0;
		
		for (int element : a) {
			sum += element;
		}
		
		return sum;
	}
	
	public static int sum(double... a) {
		System.out.println(a);
		return 0;
	}
	
}
